Вставкой2.отд
Главная     ◄Глагол     ◄Азбука     ◄Задачи на Глаголе     Примеры приложений ►   Среда разработки ►   Отладка программ ►   Отличия от Оберона ►   Отличия от Паскаля ►   Ассемблер ARM ►   Глагол для ARM ►   ? и Ответы
 
 glagol.png Программируем по-русски
 

Основная задача Глагола — дать человеку возможность воплощать свои мысли на языке, близком к его родному языку.

Издатель Глагола
 

 

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
                              ОТДЕЛ Вставкой2;
(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
(* НАЗНАЧЕНИЕ: упорядочивание ряда двоичной вставкой                          *)
(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)

(*────────────────────────────────────────────────────────────────────────────*)
ЗАДАЧА Упорядочить-(ряд+:РЯД ИЗ ЦЕЛ);
(* Цель:  упорядочивание ряда целых чисел двоичной вставкой
 * До:    <ряд> - исходный ряд
 * После: <ряд> - упорядоченный ряд *)
ПЕР
  число:ЦЕЛ;     (* обрабатываемое число *)
  позНеуп:ЦЕЛ;   (* до этой позиции ряд уже упорядочен *)
  позВставки:ЦЕЛ;(* позиция вставки для обрабатываемого числа *)
  позНачала,поз:ЦЕЛ;
УКАЗ
  ОТ позНеуп:=1 ДО РАЗМЕР(ряд)-1 ВЫП
    число:=ряд[позНеуп];
    (* двоичный поиск позиции вставки *)
    позНачала:=0; позВставки:=позНеуп;
    ПОКА позНачала < позВставки ВЫП
      поз:=(позВставки+позНачала) ДЕЛИТЬ 2;
      ЕСЛИ число >= ряд[поз] ТО
        позВставки:=поз
      ИНАЧЕ
        позНачала:=поз+1
      КОН
    КОН;
    (* раздвигаем в этом месте ряд *)
    ОТ поз:=позНеуп-1 ДО позВставки ПО -1 ВЫП
      ряд[поз+1]:=ряд[поз]
    КОН;
    (* вставляем туда число *)
    ряд[позВставки]:=число
  КОН
КОН Упорядочить;

КОН Вставкой2.




Вопросы, замечания и предложения высылайте на atimopheyev@yahoo.com или Издателю Глагола:
 email
 
Главная     ◄Глагол     ◄Азбука     ◄Задачи на Глаголе     Примеры приложений ►   Среда разработки ►   Отладка программ ►   Отличия от Оберона ►   Отличия от Паскаля ►   Ассемблер ARM ►   Глагол для ARM ►   ? и Ответы